Skip to content

Port 1.7.3 and 1.7.4 fixes to dev - #1037

Merged
EHxuban11 merged 18 commits into
devfrom
chore/port-1.7.3-1.7.4-to-dev
Nov 11, 2026
Merged

EHxuban11 merged 18 commits into
devfrom
chore/port-1.7.3-1.7.4-to-dev

Conversation

@EHxuban11

@EHxuban11 EHxuban11 commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

1.7.3 (#1020) and 1.7.4 (#1026) shipped from release and skipped dev. This merges origin/release into dev so the next release keeps them. It also brings the 1.7.2 release commits that were only on release (#992 CI tweaks, #1003 TFLite single-pass INT8).

What was ported

  • huggingface_hub>=0.34.0 is a core dependency.
  • Hub repos with several checkpoints pick the one named after the repo (LibreYOLO/LibreYOLO9t -> LibreYOLO9t.pt).
  • The local owner-folder check is case-sensitive, so a libreyolo/ folder no longer hides LibreYOLO/<repo> on macOS and Windows.
  • Python 3.13/3.14 markers on the tflite, executorch, paddle, tensorrt and coreml extras, so pip no longer backtracks to old releases.
  • Quoted install hints (pip install "libreyolo[x]") and the ONNX export hint.

Conflicts

Verification

  • _select_repo_weight_file(["LibreYOLO9t.pt", "libreyolo9t.pt"], "LibreYOLO/LibreYOLO9t") returns LibreYOLO9t.pt. The hf_hub tests for this pass.
  • A real download from /tmp: LibreYOLO("LibreYOLO/LibreYOLO9t") resolves, loads and predicts. With a libreyolo/ folder in the cwd it still parses as a Hub reference.
  • pyproject: checked that core deps include huggingface_hub and that the 3.13/3.14 markers are on the five extras. test_dependencies.py passes.
  • Install hints: test_command_utils.py, the CLI models tests and the export tests pass with the quoted text.
  • The hf_hub, download, dependencies, parkour guard, CLI, TFLite, CoreML, ExecuTorch, TensorRT and MNN unit tests pass (768 passed, 1 skipped).
  • Full tests/unit with -n 4: 10085 passed, 4 failed. All 4 also fail on clean origin/dev: test_export_support.py::test_committed_inventory_matches_runtime_inventory and three ONNX raw-parity cases in test_detr_cpu_export_matrix.py (DEIM, RTDETRv2, DFINE-segment).

Code provenance

Ported from release; original code from PRs #1020 and #1026, no external code.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no new actionable issue was found.

Summary

Ports the release fixes into dev and sets the version to 1.8.0.dev0.

  • TFLite INT8 export quantizes the model in one pass by default.
  • Hub repo IDs load checkpoints named after their repository.
  • Optional backend extras skip Python versions without their pinned wheels.
  • Install hints quote optional extras so shells keep their brackets intact.
  • The install smoke check counts extra detections as well as missing ones.
  • The development version and release notes place the ported fixes in release order.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[TFLite export request] --> B[Check options before changing model]
  B --> C[Export static ONNX graph]
  C --> D{INT8 route}
  D -->|Default| E[Build SavedModel]
  E --> F[Run one quantization pass]
  D -->|onnx2tf fallback| G[Run CLI quantization]
  F --> H[Write TFLite file and metadata]
  G --> H
Loading

Reviews (2) · Last reviewed commit: "Validate TFLite INT8 options before pref..." · Reviewed by Greptile

EHxuban11 and others added 16 commits November 3, 2026 18:50
onnx2tf's -oiqt builds the integer model twice: first with float32 I/O,
then again with int8 I/O, and only the second is shipped. The I/O dtype
does not change the calibrated scales, so the first pass is overhead.

Build the SavedModel with onnx2tf and run a single in-process
TFLiteConverter pass instead. On a YOLO9-t fine-tune at 800x1280 with 156
calibration images this takes 11.6 min instead of 74.2 min, with mAP50-95
0.621 vs 0.625 and identical quantization scales.

Calibration still feeds one image per sample: the converter requires
every sample to match the model input shape, so batching is not possible
for a batch-1 graph.

int8_backend='onnx2tf' keeps the previous CLI route, and
int8_output_dtype='float32' writes float outputs for host-dequantizing
runtimes.
Quantize TFLite INT8 once instead of twice
- huggingface_hub is a core dependency (>=0.34, below the molmo2 pin)
- the weight selector prefers the checkpoint named after the repo, so the
  YOLO9 and YOLOX repos with a legacy lowercase copy load by repo id
- a differently cased libreyolo/ folder no longer shadows Hub ids on
  case-insensitive filesystems
#1003 set TensorFlow's private converter attribute by name, which the
repository vocabulary test reads as a capability label. Same split as the
test's own word list; behaviour unchanged.
Release 1.7.3: load models by Hugging Face repo id on a plain install
- Environment markers skip backend deps that have no wheels for the
  running Python (onnx2tf, executorch/torch/torchvision, tensorrt-cu12,
  coremltools on 3.14; paddlepaddle, x2paddle and pins on 3.13+), so
  pip no longer backtracks to an old libreyolo to satisfy an extra.
- Backends and exporters raise a clear error naming the Python they need.
- Install hints are quoted: pip install "libreyolo[x]".
- README: Hub one-liner, CPU-only torch note, absolute links.
- Dependency resolution check covers Python 3.14.
- TensorRT export, INT8 calibration and inference say that the pinned
  tensorrt-cu12 has no Python 3.14 bindings and point to 3.13 or earlier.
- The CoreML platform-hint test pins Python 3.12 so it passes on 3.14,
  and a separate test covers the 3.14 message.
Release 1.7.4: extras no longer downgrade LibreYOLO on new Pythons
Brings the 1.7.2-1.7.4 release commits (#992, #1003, #1020, #1026) into dev.

- pyproject: keep dev's version line, bumped to 1.8.0.dev0 so dev sorts
  above the released 1.7.4; take the core huggingface_hub dependency and
  the Python 3.13/3.14 extras markers.
- CHANGELOG: dev's own entries stay under [Unreleased]; the #989 entries
  that dev had listed there move to the released [1.7.2] section, followed
  by release's [1.7.3] and [1.7.4] sections.
- README.md, README.zh-CN.md, SPONSORS.md: dev's versions (#1033, #1035).
hf_hub.py: keep the repo-named checkpoint pick from 1.7.3, then dev's
sorted error with an example call. docs/hf_hub.md: keep both bullets.
Comment thread libreyolo/export/tflite.py Resolved
Comment thread tools/ci/check_dependency_resolution.py Resolved
@EHxuban11
EHxuban11 merged commit fbb1448 into dev Nov 11, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants